minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
↳ QTRS
↳ Overlay + Local Confluence
minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
MINUS(x, y) → COND(gt(x, y), x, y)
MINUS(x, y) → GT(x, y)
GT(s(u), s(v)) → GT(u, v)
COND(true, x, y) → MINUS(x, s(y))
minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
MINUS(x, y) → COND(gt(x, y), x, y)
MINUS(x, y) → GT(x, y)
GT(s(u), s(v)) → GT(u, v)
COND(true, x, y) → MINUS(x, s(y))
minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
GT(s(u), s(v)) → GT(u, v)
minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
GT(s(u), s(v)) → GT(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
GT(s(u), s(v)) → GT(u, v)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
MINUS(x, y) → COND(gt(x, y), x, y)
COND(true, x, y) → MINUS(x, s(y))
minus(x, y) → cond(gt(x, y), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
MINUS(x, y) → COND(gt(x, y), x, y)
COND(true, x, y) → MINUS(x, s(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
MINUS(x, y) → COND(gt(x, y), x, y)
COND(true, x, y) → MINUS(x, s(y))
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))
(1) (MINUS(x2, s(x3))=MINUS(x4, x5) ⇒ MINUS(x4, x5)≥COND(gt(x4, x5), x4, x5))
(2) (MINUS(x2, s(x3))≥COND(gt(x2, s(x3)), x2, s(x3)))
(3) (COND(gt(x6, x7), x6, x7)=COND(true, x8, x9) ⇒ COND(true, x8, x9)≥MINUS(x8, s(x9)))
(4) (gt(x6, x7)=true ⇒ COND(true, x6, x7)≥MINUS(x6, s(x7)))
(5) (true=true ⇒ COND(true, s(x13), 0)≥MINUS(s(x13), s(0)))
(6) (gt(x14, x15)=true∧(gt(x14, x15)=true ⇒ COND(true, x14, x15)≥MINUS(x14, s(x15))) ⇒ COND(true, s(x14), s(x15))≥MINUS(s(x14), s(s(x15))))
(7) (COND(true, s(x13), 0)≥MINUS(s(x13), s(0)))
(8) (COND(true, x14, x15)≥MINUS(x14, s(x15)) ⇒ COND(true, s(x14), s(x15))≥MINUS(s(x14), s(s(x15))))
POL(0) = 0
POL(COND(x1, x2, x3)) = -1 + x2 - x3
POL(MINUS(x1, x2)) = -1 + x1 - x2
POL(c) = -2
POL(false) = 0
POL(gt(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 1
The following pairs are in Pbound:
COND(true, x, y) → MINUS(x, s(y))
There are no usable rules
COND(true, x, y) → MINUS(x, s(y))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ DependencyGraphProof
MINUS(x, y) → COND(gt(x, y), x, y)
gt(0, v) → false
gt(s(u), 0) → true
gt(s(u), s(v)) → gt(u, v)
gt(0, x0)
gt(s(x0), 0)
gt(s(x0), s(x1))